package ysq.xyg.sys.service;


import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.sys.model.po.SysDepart;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.sys.model.vo.SysDepartVo;

import java.util.List;

/**
 * 系统管理-部门service接口
 *
 * @author shengQiang yu
 * @date 2019-4-2 15:43:10
 */
public interface SysDepartService extends BaseService<SysDepart> {
    /**
     * 分页查询
     *
     * @param sysDepartVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-2 15:43:10
     */
    ReturnEntity page(SysDepartVo sysDepartVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param sysDepartVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-2 15:43:10
     */
    ReturnEntity addOrUpdate(SysDepartVo sysDepartVo, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-2 15:43:10
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param sysDepartVo 对象
     * @return List<SysDepart> SysDepart集合
     * @author shengQiang yu
     * @date 2019-4-2 15:43:10
     */
    List<SysDepart> acceptList(SysDepartVo sysDepartVo);
    /**
     * 获取组织机构树
     *
     * @param sysDepartVo Vo对象
     * @author shengQiang yu
     * @date 2019-4-2 15:43:10
     */
    ReturnEntity dTreeList(SysDepartVo sysDepartVo);
}
